package com.yidu.SystemManagement.service.impl;

import com.yidu.SystemManagement.entity.User;
import com.yidu.SystemManagement.entity.UserRole;
import com.yidu.SystemManagement.mapper.UserRoleMapper;
import com.yidu.SystemManagement.service.UserRoleService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/** 权限功能的实现层
 * @author 任俊杰
 * @version 1.0
 * @date 2022/12/10
 */
@Service
public class UserRoleImpl implements UserRoleService {

    @Resource
    private UserRoleMapper userRoleMapper;


    /**
     * 新增
     * @param userRole 用户对象
     * @return int i 受影响的行数
     */
    @Override
    public int addUserRole(UserRole userRole) {
        return userRoleMapper.addUserRole(userRole);
    }


    /**
     * 删除
     * @param userRoleId 角色id
     * @return int i 受影响的行数
     */
    @Override
    public int deleteUserRole(Integer userRoleId) {
        return userRoleMapper.deleteUserRole(userRoleId);
    }


    /**
     * 修改
     * @param userRole 用户对象
     * @return int i 受影响的行数
     */
    @Override
    public int updateUserRole(UserRole userRole) {
        return userRoleMapper.updateUserRole(userRole);
    }


    /**
     * 查询角色
     * @param page 当前页
     * @param limit 每页显示数
     * @param userRole 角色对象
     * @return map 集合
     */
    @Override
    public List<UserRole> selectUserRole(int page, int limit, UserRole userRole) {
        Map map=new HashMap();
        map.put("page",(page-1)*limit);
        map.put("limit",limit);
        map.put("strWhere",buildStrWhere(userRole));
        return userRoleMapper.selectUserRole(map);
    }


    /**
     * 分页查行数 模糊查询后的行数 根据条件
     * @param userRole 用户对象
     * @return int i 受影响的行数
     */
    @Override
    public int selectUserRoleCount(UserRole userRole) {
        Map map=new HashMap();
        map.put("strWhere",buildStrWhere(userRole));
        int count =userRoleMapper.selectUserRoleCount(map);
        return count;

    }


    /**
     * 生成条件字符串
     * @param userRole 生成条件的参数
     * @return 条件字符串  and getRightText like '%%'
     */
    public String buildStrWhere(UserRole userRole){
        StringBuffer strWhere=new StringBuffer("");
        if(userRole.getUserRoleName()!=null && !userRole.getUserRoleName().equals(""))
        {
            strWhere.append(" and userRoleName like '%" +userRole.getUserRoleName() + "%'");
        }
        System.out.println(strWhere+"===111");
        return  strWhere.toString();
    }

}
